package com.plugin.manage.pojo.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 床位信息视图对象
 * 包含床位、姓名、创建时间和检查异常信息
 * 
 * @author mark
 * @date 2025-07-26
 */
@Data
@Schema(description = "健康检查内容")
public class BedInfoVO {

    /**
     * 床位ID
     */
    @Schema(description = "床位ID", example = "1")
    private Long bedId;

    /**
     * 房间编号
     */
    @Schema(description = "房间编号", example = "A101")
    private String roomNumber;

    /**
     * 楼栋
     */
    @Schema(description = "楼栋", example = "A栋")
    private String building;

    /**
     * 楼层
     */
    @Schema(description = "楼层", example = "1")
    private Integer floor;

    /**
     * 床位编号
     */
    @Schema(description = "床位编号", example = "A101-01")
    private String bedNumber;

    /**
     * 长者姓名
     */
    @Schema(description = "长者姓名", example = "张三")
    private String elderName;

    /**
     * 长者ID
     */
    @Schema(description = "长者ID", example = "1001")
    private Long elderId;

    /**
     * 长者年龄
     */
    @Schema(description = "长者年龄", example = "75")
    private Integer elderAge;

    /**
     * 长者性别
     */
    @Schema(description = "长者性别", example = "男")
    private String elderGender;

    /**
     * 入住时间
     */
    @Schema(description = "入住时间", example = "2025-07-26 10:30:00")
    private LocalDateTime checkInTime;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间", example = "2025-07-26 09:00:00")
    private LocalDateTime createTime;

    /**
     * 最后更新时间
     */
    @Schema(description = "最后更新时间", example = "2025-07-26 11:30:00")
    private LocalDateTime updateTime;

    /**
     * 检查异常状态
     */
    @Schema(description = "检查异常状态 (0-正常 1-异常)", example = "0")
    private Integer checkExceptionStatus;

    /**
     * 检查异常描述
     */
    @Schema(description = "检查异常描述", example = "血压偏高")
    private String checkExceptionDesc;

    /**
     * 最近检查时间
     */
    @Schema(description = "最近检查时间", example = "2025-07-26 08:00:00")
    private LocalDateTime lastCheckTime;

    /**
     * 健康状态
     */
    @Schema(description = "健康状态", example = "良好")
    private String healthStatus;

    /**
     * 护理等级
     */
    @Schema(description = "护理等级", example = "一级护理")
    private String careLevel;

    /**
     * 自理能力
     */
    @Schema(description = "自理能力", example = "完全自理")
    private String selfCareAbility;

    /**
     * 房间状态
     */
    @Schema(description = "房间状态 (0-空闲 1-已入住 2-维修中 3-预约中)", example = "1")
    private Integer roomStatus;

    /**
     * 房间状态描述
     */
    @Schema(description = "房间状态描述", example = "已入住")
    private String roomStatusDesc;

    /**
     * 紧急联系人
     */
    @Schema(description = "紧急联系人", example = "李四")
    private String emergencyContact;

    /**
     * 紧急联系人电话
     */
    @Schema(description = "紧急联系人电话", example = "13800138000")
    private String emergencyPhone;

    /**
     * 备注信息
     */
    @Schema(description = "备注信息", example = "需要特别关注血压情况")
    private String remarks;

    /**
     * 风险等级
     */
    @Schema(description = "风险等级 (1-低风险 2-中风险 3-高风险)", example = "1")
    private Integer riskLevel;

    /**
     * 风险等级描述
     */
    @Schema(description = "风险等级描述", example = "低风险")
    private String riskLevelDesc;

    /**
     * 是否有异常标记
     */
    @Schema(description = "是否有异常标记", example = "false")
    private Boolean hasException;

    /**
     * 异常数量
     */
    @Schema(description = "异常数量", example = "0")
    private Integer exceptionCount;
}
